﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Foundation.ObjectHydrator.Interfaces;

namespace Foundation.ObjectHydrator.Generators
{
    public class FirstNameGenerator:IGenerator
    {
        Random random;
        IList<string> names = new List<string>();
        public FirstNameGenerator()
        {
            random = new Random();
            LoadNames();
        }


        public object Generate()
        {
            return names[random.Next(0,names.Count)];
        }

        private void LoadNames()
        {
            names = new List<String> { 
                "Aaden",
                "AadeAaliyah",
                "Aaron",
                "Abby",
                "Abel",
                "Abigail",
                "Abraham",
                "Adam",
                "Adan",
                "Addison",
                "Addyson",
                "Adeline",
                "Aden",
                "Adrian",
                "Adriana",
                "Adrianna",
                "Aidan",
                "Aiden",
                "Aileen",
                "Ainsley",
                "Alaina",
                "Alan",
                "Alana",
                "Alanna",
                "Alayna",
                "Albert",
                "Alberto",
                "Alec",
                "Alejandra",
                "Alejandro",
                "Alessandra",
                "Alex",
                "Alexa",
                "Alexander",
                "Alexandra",
                "Alexandria",
                "Alexia",
                "Alexis",
                "Alexis",
                "Alfredo",
                "Ali",
                "Alice",
                "Alicia",
                "Alijah",
                "Alina",
                "Alison",
                "Alissa",
                "Alivia",
                "Aliyah",
                "Allen",
                "Allie",
                "Allison",
                "Allisson",
                "Allyson",
                "Alondra",
                "Alvin",
                "Alyson",
                "Alyssa",
                "Amanda",
                "Amari",
                "Amari",
                "Amaya",
                "Amber",
                "Amelia",
                "Amir",
                "Amira",
                "Amiyah",
                "Amy",
                "Amya",
                "Ana",
                "Anahi",
                "Anastasia",
                "Anaya",
                "Anderson",
                "Andre",
                "Andrea",
                "Andres",
                "Andrew",
                "Andy",
                "Angel",
                "Angel",
                "Angela",
                "Angelica",
                "Angelina",
                "Angelo",
                "Angie",
                "Aniya",
                "Aniyah",
                "Anna",
                "Annabelle",
                "Anne",
                "Annie",
                "Annika",
                "Anthony",
                "Antonio",
                "Anya",
                "April",
                "Ariana",
                "Arianna",
                "Ariel",
                "Armando",
                "Arthur",
                "Arturo",
                "Asher",
                "Ashley",
                "Ashlyn",
                "Ashlynn",
                "Ashton",
                "Asia",
                "Athena",
                "Aubree",
                "Aubrey",
                "Aubrie",
                "Audrey",
                "Audrina",
                "August",
                "Aurora",
                "Austin",
                "Autumn",
                "Ava",
                "Avery",
                "Avery",
                "Axel",
                "Ayden",
                "Ayla",
                "Bailey",
                "Baylee",
                "Beau",
                "Beckett",
                "Bella",
                "Benjamin",
                "Bennett",
                "Bethany",
                "Bianca",
                "Blake",
                "Braden",
                "Bradley",
                "Brady",
                "Braeden",
                "Braiden",
                "Brandon",
                "Braxton",
                "Brayan",
                "Brayden",
                "Braydon",
                "Braylon",
                "Breanna",
                "Brenda",
                "Brendan",
                "Brenden",
                "Brenna",
                "Brennan",
                "Brett",
                "Brian",
                "Briana",
                "Brianna",
                "Bridget",
                "Brielle",
                "Brittany",
                "Brock",
                "Brodie",
                "Brody",
                "Brooke",
                "Brooklyn",
                "Brooklynn",
                "Bruce",
                "Bryan",
                "Bryant",
                "Bryce",
                "Brycen",
                "Brynn",
                "Bryson",
                "Byron",
                "Cade",
                "Caden",
                "Cadence",
                "Caiden",
                "Caitlin",
                "Caitlyn",
                "Caleb",
                "Cali",
                "Callie",
                "Calvin",
                "Camden",
                "Cameron",
                "Cameron",
                "Camila",
                "Camille",
                "Camron",
                "Camryn",
                "Cara",
                "Carl",
                "Carlos",
                "Carly",
                "Carmen",
                "Carolina",
                "Caroline",
                "Carson",
                "Carter",
                "Casey",
                "Casey",
                "Cash",
                "Cassandra",
                "Cassidy",
                "Catherine",
                "Cayden",
                "Cecilia",
                "Celeste",
                "Cesar",
                "Chad",
                "Chance",
                "Chandler",
                "Charles",
                "Charlie",
                "Charlotte",
                "Chase",
                "Chelsea",
                "Cheyanne",
                "Cheyenne",
                "Chloe",
                "Chris",
                "Christian",
                "Christina",
                "Christopher",
                "Ciara",
                "Cindy",
                "Claire",
                "Clara",
                "Claudia",
                "Clayton",
                "Cody",
                "Cohen",
                "Colby",
                "Cole",
                "Colin",
                "Collin",
                "Colten",
                "Colton",
                "Conner",
                "Connor",
                "Cooper",
                "Cora",
                "Corbin",
                "Corey",
                "Cory",
                "Courtney",
                "Cristian",
                "Cristopher",
                "Cruz",
                "Crystal",
                "Curtis",
                "Cynthia",
                "Daisy",
                "Dakota",
                "Dakota",
                "Dallas",
                "Dalton",
                "Damian",
                "Damien",
                "Damon",
                "Dana",
                "Dane",
                "Danica",
                "Daniel",
                "Daniela",
                "Daniella",
                "Danielle",
                "Danika",
                "Danna",
                "Danny",
                "Dante",
                "Darius",
                "Darren",
                "David",
                "Davion",
                "Davis",
                "Dawson",
                "Dayana",
                "Dayton",
                "Dean",
                "Deandre",
                "Declan",
                "Delaney",
                "Delilah",
                "Denise",
                "Dennis",
                "Derek",
                "Derrick",
                "Desiree",
                "Desmond",
                "Destiny",
                "Devin",
                "Devon",
                "Diamond",
                "Diana",
                "Diego",
                "Dillon",
                "Dominic",
                "Dominick",
                "Donald",
                "Donovan",
                "Dorian",
                "Douglas",
                "Drake",
                "Drew",
                "Dulce",
                "Dustin",
                "Dylan",
                "Easton",
                "Eddie",
                "Eden",
                "Edgar",
                "Eduardo",
                "Edward",
                "Edwin",
                "Elaina",
                "Eleanor",
                "Elena",
                "Eli",
                "Eliana",
                "Elias",
                "Elijah",
                "Elise",
                "Eliza",
                "Elizabeth",
                "Ella",
                "Elle",
                "Ellie",
                "Elliot",
                "Elliott",
                "Emanuel",
                "Emely",
                "Emerson",
                "Emerson",
                "Emery",
                "Emilee",
                "Emilia",
                "Emiliano",
                "Emilio",
                "Emily",
                "Emma",
                "Emmanuel",
                "Enrique",
                "Eric",
                "Erica",
                "Erick",
                "Erik",
                "Erika",
                "Erin",
                "Ernesto",
                "Esmeralda",
                "Esteban",
                "Esther",
                "Estrella",
                "Ethan",
                "Eva",
                "Evan",
                "Evangeline",
                "Evelyn",
                "Everett",
                "Ezekiel",
                "Ezra",
                "Fabian",
                "Faith",
                "Fatima",
                "Felix",
                "Fernanda",
                "Fernando",
                "Finn",
                "Fiona",
                "Francesca",
                "Francisco",
                "Frank",
                "Franklin",
                "Gabriel",
                "Gabriela",
                "Gabriella",
                "Gabrielle",
                "Gael",
                "Gage",
                "Garrett",
                "Gary",
                "Gavin",
                "Genesis",
                "Genevieve",
                "George",
                "Georgia",
                "Gerardo",
                "Gianna",
                "Giovanni",
                "Giselle",
                "Gloria",
                "Grace",
                "Gracie",
                "Grady",
                "Graham",
                "Grant",
                "Grayson",
                "Gregory",
                "Greyson",
                "Griffin",
                "Guadalupe",
                "Guillermo",
                "Gunner",
                "Gustavo",
                "Hadley",
                "Hailee",
                "Hailey",
                "Haley",
                "Hanna",
                "Hannah",
                "Harley",
                "Harmony",
                "Harper",
                "Harrison",
                "Hayden",
                "Hayden",
                "Haylee",
                "Hayley",
                "Haylie",
                "Hazel",
                "Heather",
                "Heaven",
                "Hector",
                "Heidi",
                "Helen",
                "Henry",
                "Holden",
                "Holly",
                "Hope",
                "Hudson",
                "Hugo",
                "Hunter",
                "Ian",
                "Imani",
                "Iris",
                "Isaac",
                "Isabel",
                "Isabella",
                "Isabelle",
                "Isaiah",
                "Isaias",
                "Isiah",
                "Ismael",
                "Israel",
                "Issac",
                "Itzel",
                "Ivan",
                "Ivy",
                "Izabella",
                "Izaiah",
                "Jace",
                "Jack",
                "Jackson",
                "Jacob",
                "Jacoby",
                "Jacqueline",
                "Jada",
                "Jade",
                "Jaden",
                "Jaden",
                "Jadon",
                "Jadyn",
                "Jaelyn",
                "Jaiden",
                "Jaime",
                "Jake",
                "Jakob",
                "Jalen",
                "Jamari",
                "Jamarion",
                "James",
                "Jameson",
                "Jamie",
                "Jane",
                "Janelle",
                "Janiya",
                "Janiyah",
                "Jared",
                "Jaslene",
                "Jasmin",
                "Jasmine",
                "Jason",
                "Jasper",
                "Javier",
                "Javon",
                "Jaxon",
                "Jaxson",
                "Jay",
                "Jayce",
                "Jayda",
                "Jayden",
                "Jayden",
                "Jaydon",
                "Jayla",
                "Jaylen",
                "Jayson",
                "Jazlyn",
                "Jazmin",
                "Jazmine",
                "Jeffrey",
                "Jenna",
                "Jennifer",
                "Jeremiah",
                "Jeremy",
                "Jerry",
                "Jesse",
                "Jessica",
                "Jesus",
                "Jillian",
                "Jimena",
                "Jimmy",
                "Joanna",
                "Joaquin",
                "Jocelyn",
                "Joe",
                "Joel",
                "Johan",
                "Johanna",
                "John",
                "Johnathan",
                "Johnny",
                "Jonah",
                "Jonas",
                "Jonathan",
                "Jonathon",
                "Jordan",
                "Jordan",
                "Jordyn",
                "Jorge",
                "Jose",
                "Joselyn",
                "Joseph",
                "Josephine",
                "Joshua",
                "Josiah",
                "Josie",
                "Josue",
                "Juan",
                "Judah",
                "Jude",
                "Julia",
                "Julian",
                "Juliana",
                "Julianna",
                "Julie",
                "Juliet",
                "Julio",
                "Julissa",
                "Julius",
                "Justice",
                "Justin",
                "Kade",
                "Kaden",
                "Kadence",
                "Kaelyn",
                "Kai",
                "Kaiden",
                "Kailey",
                "Kailyn",
                "Kaitlin",
                "Kaitlyn",
                "Kale",
                "Kaleb",
                "Kameron",
                "Kamryn",
                "Kane",
                "Kara",
                "Karen",
                "Karina",
                "Karla",
                "Karson",
                "Kassidy",
                "Kate",
                "Katelyn",
                "Katelynn",
                "Katherine",
                "Kathleen",
                "Kathryn",
                "Katie",
                "Kayden",
                "Kayden",
                "Kaydence",
                "Kayla",
                "Kaylee",
                "Kayleigh",
                "Kaylie",
                "Kaylin",
                "Keagan",
                "Keaton",
                "Keegan",
                "Keira",
                "Keith",
                "Kellen",
                "Kelly",
                "Kelsey",
                "Kelvin",
                "Kendall",
                "Kendra",
                "Kennedy",
                "Kenneth",
                "Kenzie",
                "Kevin",
                "Khalil",
                "Khloe",
                "Kiana",
                "Kiara",
                "Kiera",
                "Kiley",
                "Kimberly",
                "Kimora",
                "Kingston",
                "Kira",
                "Kobe",
                "Kolton",
                "Kristen",
                "Kristina",
                "Kristopher",
                "Kyla",
                "Kyle",
                "Kylee",
                "Kyleigh",
                "Kyler",
                "Kylie",
                "Kyra",
                "Lacey",
                "Laila",
                "Lana",
                "Lance",
                "Landen",
                "Landon",
                "Landyn",
                "Lane",
                "Larry",
                "Laura",
                "Lauren",
                "Lauryn",
                "Lawrence",
                "Layla",
                "Leah",
                "Leila",
                "Leilani",
                "Leland",
                "Lena",
                "Leo",
                "Leonardo",
                "Leonel",
                "Leslie",
                "Lesly",
                "Levi",
                "Lexi",
                "Lia",
                "Liam",
                "Lila",
                "Lilah",
                "Lilian",
                "Liliana",
                "Lillian",
                "Lilliana",
                "Lillie",
                "Lilly",
                "Lily",
                "Lincoln",
                "Lindsay",
                "Lindsey",
                "Lizbeth",
                "Logan",
                "Logan",
                "Lola",
                "London",
                "Lorenzo",
                "Louis",
                "Luca",
                "Lucas",
                "Lucia",
                "Lucy",
                "Luis",
                "Lukas",
                "Luke",
                "Luna",
                "Lydia",
                "Lyla",
                "Lyric",
                "Macie",
                "Mackenzie",
                "Macy",
                "Madalyn",
                "Maddison",
                "Maddox",
                "Madeleine",
                "Madeline",
                "Madelyn",
                "Madelynn",
                "Madilyn",
                "Madison",
                "Madisyn",
                "Madyson",
                "Maggie",
                "Makayla",
                "Makenna",
                "Makenzie",
                "Malachi",
                "Malia",
                "Malik",
                "Mallory",
                "Manuel",
                "Marc",
                "Marco",
                "Marcos",
                "Marcus",
                "Marely",
                "Margaret",
                "Maria",
                "Mariah",
                "Mariana",
                "Mario",
                "Marisol",
                "Marissa",
                "Mark",
                "Marlee",
                "Marley",
                "Marshall",
                "Martin",
                "Marvin",
                "Mary",
                "Mason",
                "Mateo",
                "Mathew",
                "Matthew",
                "Maurice",
                "Mauricio",
                "Max",
                "Maximilian",
                "Maximus",
                "Maxwell",
                "Maya",
                "Mckenna",
                "Mckenzie",
                "Megan",
                "Meghan",
                "Mekhi",
                "Melanie",
                "Melany",
                "Melissa",
                "Melody",
                "Melvin",
                "Meredith",
                "Mia",
                "Micah",
                "Michael",
                "Michaela",
                "Micheal",
                "Michelle",
                "Miguel",
                "Mikayla",
                "Miles",
                "Miley",
                "Milo",
                "Miracle",
                "Miranda",
                "Miriam",
                "Mitchell",
                "Moises",
                "Molly",
                "Monica",
                "Morgan",
                "Morgan",
                "Moses",
                "Mya",
                "Mylee",
                "Myles",
                "Nadia",
                "Nancy",
                "Naomi",
                "Nasir",
                "Natalia",
                "Natalie",
                "Nataly",
                "Natasha",
                "Nathan",
                "Nathaniel",
                "Nayeli",
                "Nehemiah",
                "Nelson",
                "Nevaeh",
                "Nia",
                "Nicholas",
                "Nickolas",
                "Nicolas",
                "Nicole",
                "Nikolas",
                "Nina",
                "Noah",
                "Noel",
                "Noelle",
                "Nolan",
                "Nora",
                "Norah",
                "Nyla",
                "Oliver",
                "Olivia",
                "Omar",
                "Orlando",
                "Oscar",
                "Owen",
                "Pablo",
                "Paige",
                "Paisley",
                "Paola",
                "Paris",
                "Parker",
                "Patricia",
                "Patrick",
                "Paul",
                "Paxton",
                "Payton",
                "Payton",
                "Pedro",
                "Penelope",
                "Perla",
                "Peter",
                "Peyton",
                "Peyton",
                "Philip",
                "Phillip",
                "Phoebe",
                "Phoenix",
                "Piper",
                "Porter",
                "Presley",
                "Preston",
                "Priscilla",
                "Quentin",
                "Quinn",
                "Quinton",
                "Rachael",
                "Rachel",
                "Raegan",
                "Rafael",
                "Ramon",
                "Randy",
                "Raul",
                "Raymond",
                "Reagan",
                "Rebecca",
                "Rebekah",
                "Reece",
                "Reed",
                "Reese",
                "Reese",
                "Reid",
                "Ricardo",
                "Richard",
                "Ricky",
                "Rihanna",
                "Riley",
                "Riley",
                "River",
                "Robert",
                "Roberto",
                "Rocco",
                "Rodrigo",
                "Roger",
                "Roman",
                "Romeo",
                "Ronald",
                "Rosa",
                "Rose",
                "Rowan",
                "Rowan",
                "Roy",
                "Ruben",
                "Ruby",
                "Russell",
                "Ruth",
                "Ryan",
                "Ryder",
                "Ryker",
                "Rylan",
                "Rylee",
                "Ryleigh",
                "Rylie",
                "Sabrina",
                "Sadie",
                "Sage",
                "Salvador",
                "Sam",
                "Samantha",
                "Samara",
                "Samuel",
                "Sandra",
                "Santiago",
                "Sara",
                "Sarah",
                "Sarai",
                "Sasha",
                "Saul",
                "Savanna",
                "Savannah",
                "Sawyer",
                "Scarlett",
                "Scott",
                "Sean",
                "Sebastian",
                "Selena",
                "Serena",
                "Serenity",
                "Sergio",
                "Seth",
                "Shane",
                "Shannon",
                "Shaun",
                "Shawn",
                "Shayla",
                "Shelby",
                "Sienna",
                "Sierra",
                "Silas",
                "Simon",
                "Skylar",
                "Skyler",
                "Skyler",
                "Sofia",
                "Solomon",
                "Sophia",
                "Sophie",
                "Spencer",
                "Stella",
                "Stephanie",
                "Stephen",
                "Steven",
                "Summer",
                "Sydney",
                "Talia",
                "Talon",
                "Tanner",
                "Taryn",
                "Tate",
                "Tatiana",
                "Tatum",
                "Taylor",
                "Taylor",
                "Teagan",
                "Terry",
                "Tessa",
                "Theodore",
                "Thomas",
                "Tiffany",
                "Timothy",
                "Titus",
                "Tony",
                "Tori",
                "Travis",
                "Trent",
                "Trenton",
                "Trevor",
                "Trey",
                "Trinity",
                "Tristan",
                "Tristen",
                "Triston",
                "Troy",
                "Tucker",
                "Ty",
                "Tyler",
                "Tyson",
                "Uriel",
                "Valentina",
                "Valeria",
                "Valerie",
                "Vanessa",
                "Veronica",
                "Victor",
                "Victoria",
                "Vincent",
                "Violet",
                "Vivian",
                "Viviana",
                "Walker",
                "Walter",
                "Wendy",
                "Wesley",
                "Weston",
                "William",
                "Willow",
                "Wyatt",
                "Xander",
                "Xavier",
                "Ximena",
                "Yahir",
                "Yasmin",
                "Zachariah",
                "Zachary",
                "Zackary",
                "Zander",
                "Zane",
                "Zayden",
                "Zion",
                "Zoe",
                "Zoey"
            };

        }
    }
}
